---
image: /generated/articles-docs-whisper-web-download-whisper-model.png
title: downloadWhisperModel()
crumb: '@remotion/whisper-web'
---

# downloadWhisperModel()

:::warning
**Unstable API**: This package is experimental for the moment. As we test it, we might make a few changes to the API and switch to a WebGPU-based backend in the future.
:::

Downloads a Whisper model into IndexedDB.

```tsx twoslash title="app.ts"
import {downloadWhisperModel} from '@remotion/whisper-web';

const {alreadyDownloaded} = await downloadWhisperModel({
  model: 'tiny.en',
  onProgress: (progress) => {
    console.log(progress);
  },
});
```

## Options

### `model`

The model to download. Possible values: `tiny`, `tiny.en`, `base`, `base.en`, `small`, `small.en`.

### `onProgress?`

Act upon download progress. This is the function signature:

```tsx twoslash
import {DownloadWhisperModelOnProgress, DownloadWhisperModelProgress} from '@remotion/whisper-web';

const onProgress: DownloadWhisperModelOnProgress = ({progress, totalBytes, downloadedBytes}: DownloadWhisperModelProgress) => {
  console.log({progress, totalBytes, downloadedBytes});
};
```

## Return Value

Returns an object with the following properties:

- `alreadyDownloaded`: Whether the model has already been downloaded.

## See also

- [Source code for this function](https://github.com/remotion-dev/remotion/blob/main/packages/whisper-web/src/download-whisper-model.ts)
- [`@remotion/whisper-web`](/docs/whisper-web)
- [`transcribe()`](/docs/whisper-web/transcribe)
